﻿using System.Windows.Media;
using ICSharpCode.SharpDevelop.Editor;
using Oxage.Common;

namespace ICSharpCode.AvalonEdit.Editing
{
	public class Bookmark : IBookmark
	{
		public ITextMarker Marker
		{
			get;
			set;
		}

		public int LineNumber
		{
			get;
			set;
		}

		public int ZIndex
		{
			get;
			set;
		}

		public ImageSource Image
		{
			get;
			set;
		}
	}

	//Breakpoint
	public class BreakpointBookmark : Bookmark
	{
		public BreakpointBookmark(int lineNumber)
		{
			base.ZIndex = 100;
			base.Image = ResourceHelper.GetImage("Resources/Icons/Breakpoint.png");
			base.LineNumber = lineNumber;
		}
	}

	//Current step in debugger
	public class CurrentLineBookmark : Bookmark
	{
		public CurrentLineBookmark(int lineNumber)
		{
			base.ZIndex = 120;
			base.Image = ResourceHelper.GetImage("Resources/Icons/CurrentLine.png");
			base.LineNumber = lineNumber;
		}
	}

	//Marked text line for reference
	public class MarkerBookmark : Bookmark
	{
		public MarkerBookmark(int lineNumber)
		{
			base.ZIndex = 70;
			base.Image = ResourceHelper.GetImage("Resources/Icons/Marker.png");
			base.LineNumber = lineNumber;
		}
	}
}
